package cn.edu.wfit.modules.infomanagement.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import cn.edu.wfit.common.core.annotation.Excel;
import cn.edu.wfit.common.core.web.domain.BaseEntity;

/**
 * 存储每日发车安排对象 t_bus_schedule
 * 
 * @author zhanghao
 * @date 2025-11-07
 */
public class TBusSchedule extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键（自增），唯一发车计划标识 */
    private Long id;

    /** 关联 t_bus.id */
    @Excel(name = "关联 t_bus.id")
    private Long busId;

    /** 关联 user.id */
    @Excel(name = "关联 user.id")
    private Long driverId;

    /** 发车日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发车日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date departureDate;

    /** 往返线路（1上午青州-&gt;潍坊 2上午潍坊-&gt;青州 3下午 青州-&gt;潍坊 4潍坊-&gt;青州） */
    @Excel(name = "往返线路", readConverterExp = "1=上午青州-&gt;潍坊,2=上午潍坊-&gt;青州,3=下午,青=州-&gt;潍坊,4=潍坊-&gt;青州")
    private Long line;


    /** 计划状态（1 = 可预约，2 = 已发车，3 = 已取消） */
    @Excel(name = "计划状态", readConverterExp = "1=,==,可=预约，2,==,已=发车，3,==,已=取消")
    private Long status;

    /** 发车周循环 */
    private String week;
    public String getWeek() {
        return week;
    }

    public void setWeek(String week) {
        this.week = week;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setBusId(Long busId) 
    {
        this.busId = busId;
    }

    public Long getBusId() 
    {
        return busId;
    }

    public void setDriverId(Long driverId) 
    {
        this.driverId = driverId;
    }

    public Long getDriverId() 
    {
        return driverId;
    }

    public void setDepartureDate(Date departureDate) 
    {
        this.departureDate = departureDate;
    }

    public Date getDepartureDate() 
    {
        return departureDate;
    }


    public void setLine(Long line) 
    {
        this.line = line;
    }

    public Long getLine() 
    {
        return line;
    }


    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("busId", getBusId())
            .append("driverId", getDriverId())
            .append("departureDate", getDepartureDate())
            .append("line", getLine())
            .append("status", getStatus())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
